CodeIgniter JOINを使うデータ取得 サンプルコードあり

PHP

CodeIgniter JOINを使うデータ取得 サンプルコード

ちょっと直感的にわかりにくかったので、メモしておきます。

次のような2つのテーブルがあります。
ユーザーと、ユーザーの友達のテーブルです。

users

|id|name|email|
|1|エレン|elen@onlineconsultant.jp|
|2|アルミン|almin@onlineconsultant.jp|

friends

|id|user_id|name|birthday|
|1|1|ミカサ|1月4日|
|2|1|リヴァイ|2月15日|
|3|2|ベルナルド|4月30日|

1月4日の友達を検索して、誰の友達なのかと、友達の誕生日と、友達の名前を表示します。

 $this->load->database();
 $where = array('friends.birthday' => "1月4日");
 $this->db->select('friends.birthday, friends.name as friend_name, users.name as user_name, users.email');
 $this->db->from('friends');
 $this->db->join('users', 'users.id = friends.user_id');
 $this->db->where($where);
 $query = $this->db->get();
 
  foreach($query->result() as $row){
     $friend_name = $row->friend_name; //ミカサが入ります
     $user_name = $row->user_name; //エレンが入ります
  }				

発行されるSQL文は次のようになります。

 SELECT 
    `friends`.`birthday`, `friends`.`name` as friend_name, `users`.`name` as user_name, `users`.`email`
 FROM (`friends`)
 JOIN `users` ON `users`.`id` = `friends`.`user_id`
 WHERE `friends`.`birthday` =  '1月4日'  
カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です